package com.yuanchu.search.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 售后单记录表
 * 
 * @author adan
 * @email 2028038953@gmail.com
 * @date 2023-12-19 20:57:21
 */
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@Data
@TableName("yoshop_order_refund")
public class YoshopOrderRefundEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 售后单ID
	 */
	@TableId
	private Integer orderRefundId;
	/**
	 * 订单ID
	 */
	private Integer orderId;
	/**
	 * 订单商品ID
	 */
	private Integer orderGoodsId;
	/**
	 * 用户ID
	 */
	private Integer userId;
	/**
	 * 售后类型(10退货退款 20换货)
	 */
	private Integer type;
	/**
	 * 用户申请原因(说明)
	 */
	private String applyDesc;
	/**
	 * 商家审核状态(0待审核 10已同意 20已拒绝)
	 */
	private Integer auditStatus;
	/**
	 * 商家拒绝原因(说明)
	 */
	private String refuseDesc;
	/**
	 * 实际退款金额
	 */
	private BigDecimal refundMoney;
	/**
	 * 用户是否发货(0未发货 1已发货)
	 */
	private Integer isUserSend;
	/**
	 * 用户发货时间
	 */
	private Integer sendTime;
	/**
	 * 用户发货物流公司ID
	 */
	private String expressId;
	/**
	 * 用户发货物流单号
	 */
	private String expressNo;
	/**
	 * 商家收货状态(0未收货 1已收货)
	 */
	private Integer isReceipt;
	/**
	 * 售后单状态(0进行中 10已拒绝 20已完成 30已取消)
	 */
	private Integer status;
	/**
	 * 商城ID
	 */
	private Integer storeId;
	/**
	 * 创建时间
	 */
	private String createTime;
	/**
	 * 更新时间
	 */
	private String updateTime;

	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	private String stateText;

	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	@JsonProperty("orderGoods")
	private YoshopOrderGoodsEntity orderGoods;

	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	private YoshopOrderRefundAddressEntity address;
	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	private YoshopUserEntity user;

	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	@JsonProperty("orderData")
	private YoshopOrderEntity orderData;

	@JsonInclude(JsonInclude.Include.NON_NULL)
	@TableField(exist = false)
	private String orderNo;
}
